import { ElMessage } from 'element-plus';

// 交易账号切换接口
export interface TradeAccountSwitchRequest {
  memberId: string;
  sourceAccountId: string;
  targetAccountId: string;
}

// 交易账号信息接口
export interface TradeAccount {
  id: string;
  site: string;
  account: string;
  accountNickname: string;
  phone: string;
  status: string;
  bindUsers?: Array<{
    id: string;
    nickname: string;
  }>;
  bindServer?: string;
  remark?: string;
}

// 获取会员绑定的交易账号
export async function getMemberTradeAccounts(memberId: string): Promise<TradeAccount[]> {
  try {
    // 这里应该调用实际的API
    // const response = await api.get(`/trade-accounts/member/${memberId}`);
    // return response.data;

    // 模拟API调用
    return new Promise((resolve) => {
      setTimeout(() => {
        resolve([]);
      }, 500);
    });
  } catch (error) {
    console.error('获取会员交易账号失败:', error);
    ElMessage.error('获取交易账号信息失败');
    return [];
  }
}

// 获取可用的交易账号列表
export async function getAvailableTradeAccounts(memberId: string): Promise<TradeAccount[]> {
  try {
    // 这里应该调用实际的API
    // const response = await api.get('/trade-accounts/available', {
    //   params: { excludeMemberId: memberId }
    // });
    // return response.data;

    // 模拟API调用
    return new Promise((resolve) => {
      setTimeout(() => {
        resolve([]);
      }, 500);
    });
  } catch (error) {
    console.error('获取可用交易账号失败:', error);
    ElMessage.error('获取可用交易账号失败');
    return [];
  }
}

// 切换交易账号
export async function switchTradeAccount(request: TradeAccountSwitchRequest): Promise<boolean> {
  try {
    // 这里应该调用实际的API
    // const response = await api.post('/trade-accounts/switch', request);
    // return response.data.success;

    // 模拟API调用
    return new Promise((resolve) => {
      setTimeout(() => {
        console.log('切换交易账号请求:', request);
        resolve(true);
      }, 1000);
    });
  } catch (error) {
    console.error('切换交易账号失败:', error);
    ElMessage.error('切换交易账号失败');
    return false;
  }
}

// 获取交易账号详情
export async function getTradeAccountDetail(accountId: string): Promise<TradeAccount | null> {
  try {
    // 这里应该调用实际的API
    // const response = await api.get(`/trade-accounts/${accountId}`);
    // return response.data;

    // 模拟API调用
    return new Promise((resolve) => {
      setTimeout(() => {
        resolve(null);
      }, 500);
    });
  } catch (error) {
    console.error('获取交易账号详情失败:', error);
    ElMessage.error('获取交易账号详情失败');
    return null;
  }
}

// 检查交易账号是否可用
export async function checkTradeAccountAvailability(accountId: string): Promise<boolean> {
  try {
    // 这里应该调用实际的API
    // const response = await api.get(`/trade-accounts/${accountId}/availability`);
    // return response.data.available;

    // 模拟API调用
    return new Promise((resolve) => {
      setTimeout(() => {
        resolve(true);
      }, 300);
    });
  } catch (error) {
    console.error('检查交易账号可用性失败:', error);
    return false;
  }
}
